SuperEntity
SuperEntity​类扩展了原生的实体类,添加了自定义组件和事件处理功能,使得实体更加灵活和可扩展。通过这个类,可以方便地管理和扩展实体的行为和属性。
成员变量
成员变量 描述
source_instance: mc.Entity 保存原生实体实例的引用。
world: SuperWorld 保存实体所在的世界实例。
attribute: Attribute 实体的属性,如健康、伤害等。
custom_component: { [id: string]: EntitySuperComponent } 存储实体的自定义组件。
enable_tick: boolean = false 标识实体是否启用周期性更新(tick)。
成员函数
构造函数和初始化
成员函数 描述
constructor(source_instance: mc.Entity, world: SuperWorld) 构造函数,初始化实体实例和世界引用,并加载自定义组件。
属性和维度访问
成员函数 描述
get dimension(): mc.Dimension 获取实体所在的维度。
get id(): string 获取实体的ID。
get isClimbing(): boolean 判断实体是否正在攀爬。
get isFalling(): boolean 判断实体是否正在下落。
get isSneaking(): boolean 判断实体是否正在潜行。
get isInWater(): boolean 判断实体是否在水中。
get isOnGround(): boolean 判断实体是否在地面上。
get isSleeping(): boolean 判断实体是否在睡觉。
get isSprinting(): boolean 判断实体是否在冲刺。
get isSwimming(): boolean 判断实体是否在游泳。
get location(): vec3 获取实体的位置。
get nameTag(): string 获取实体的名称标签。
get scoreboardIdentity(): mc.ScoreboardIdentity 获取实体的计分板身份。
get target(): mc.Entity 获取实体的目标实体。
get typeId(): string 获取实体的类型ID。
自定义组件管理
成员函数 描述
readCustomComponent() 从存储中读取并加载自定义组件。
saveCustomComponent() 保存自定义组件到存储。
addCustomComponent(identifier: string, options?: SuperComponentCreateOptions): boolean 添加一个新的自定义组件。
removeCustomComponent(identifier: string) 移除一个自定义组件。
getCustomComponent<C extends EntitySuperComponent>(identifier: string): C 获取一个自定义组件。
getCustomComponents(): EntitySuperComponent[] 获取所有自定义组件。
事件处理
成员函数 描述
onDieAfterEvent(event: mc.EntityDieAfterEvent) 实体死亡后的事件处理。
onHealthChangedAfterEvent(event: mc.EntityHealthChangedAfterEvent) 实体血量改变后的事件处理。
onHitBlockAfterEvent(event: mc.EntityHitBlockAfterEvent) 实体击中方块后的事件处理。
onHitEntityAfterEvent(event: mc.EntityHitEntityAfterEvent) 实体击中另一个实体后的事件处理。
onHurtAfterEvent(event: mc.EntityHurtAfterEvent) 实体受到伤害后的事件处理。
onLoadAfterEvent(event: mc.EntityLoadAfterEvent) 实体加载后的事件处理。
onRemoveAfterEvent(event: mc.EntityRemoveAfterEvent) 实体被移除后的事件处理。
onEntitySpawnAfterEvent(event: mc.EntitySpawnAfterEvent) 实体生成后的事件处理。
onRemoveBeforeEvent(event: mc.EntityRemoveBeforeEvent) 实体被移除前的事件处理。
实体操作
成员函数 描述
addEffect(effectType: mc.EffectType | string, duration: number, options?: mc.EntityEffectOptions): mc.Effect | undefined 给实体添加药水效果。
addTag(tag: string): boolean 给实体添加标签。
applyDamage(amount: number, options?: mc.EntityApplyDamageByProjectileOptions | mc.EntityApplyDamageOptions): boolean 对实体应用伤害。
applyImpulse(vector: mc.Vector3): void 对实体应用冲量。
applyKnockback(directionX: number, directionZ: number, horizontalStrength: number, verticalStrength: number): void 对实体应用击退效果。
clearDynamicProperties(): void 清除实体的所有动态属性。
clearVelocity(): void 清除实体的当前速度。
extinguishFire(useEffects?: boolean): boolean 熄灭实体上的火。
getBlockFromViewDirection(options?: mc.BlockRaycastOptions): mc.BlockRaycastHit | undefined 获取实体视线方向。
getComponent<T extends keyof mc.EntityComponentTypeMap>(componentId: T): mc.EntityComponentTypeMap[T] | undefined 获取一个原生实体组件。
getComponents(): mc.EntityComponent[] 获取实体的所有组件。
getDynamicProperty(identifier: string): boolean | number | string | mc.Vector3 | undefined 获取实体对应动态属性标识符的值。
getDynamicPropertyIds(): string[] 获取实体的所有动态属性标识符。
getDynamicPropertyTotalByteCount(): number 获取实体所有动态属性的总字节大小。
getEffect(effectType: mc.EffectType | string): mc.Effect | undefined 获取实体的对应效果。
getEffects(): mc.Effect[] 获取实体的所有效果。
getEntitiesFromViewDirection(options?: mc.EntityRaycastOptions): mc.EntityRaycastHit[] 获取实体视线方向上的所有实体。
getHeadLocation(): mc.Vector3 获取实体头部的位置。
getProperty(identifier: string): boolean | number | string | undefined 获取实体属性。
getRotation(): mc.Vector2 获取实体的旋转角度。
getTags(): string[] 获取实体的所有标签。
getVelocity(): mc.Vector3 获取实体的当前速度向量。
getViewDirection(): mc.Vector3 获取实体的当前视线方向。
hasComponent(componentId: string): boolean 判断实体是否具有指定的组件。
hasTag(tag: string): boolean 判断实体是否具有指定的标签。
isValid(): boolean 判断实体是否有效。
kill(): boolean 杀死实体。
matches(options: mc.EntityQueryOptions): boolean 判断实体是否匹配指定的查询选项。
playAnimation(animationName: string, options?: mc.PlayAnimationOptions): void 播放实体的动画。
remove(): void 立即移除实体。
removeEffect(effectType: mc.EffectType | string): boolean 移除实体效果。
removeTag(tag: string): boolean 移除实体的指定标签。
resetProperty(identifier: string): boolean | number | string 重置实体属性。
runCommand(commandString: string): mc.CommandResult 执行同步命令。
runCommandAsync(commandString: string): Promise<mc.CommandResult> 异步执行命令。
setDynamicProperty(identifier: string, value?: boolean | number | string | mc.Vector3): void 设置实体动态属性。
setOnFire(seconds: number, useEffects?: boolean): boolean 设置实体着火。
setProperty(identifier: string, value: boolean | number | string): void 设置实体属性
setRotation(rotation: mc.Vector2): void 设置实体的旋转角度。
teleport(location: vec3, teleportOptions?: mc.TeleportOptions): void 将实体传送到指定位置。
triggerEvent(eventName: string): void 触发实体的事件。
tryTeleport(location: vec3, teleportOptions?: mc.TeleportOptions): boolean 尝试将实体传送到指定位置,可能失败。